# -*- coding: utf-8 -*-
"""
Created on Fri Aug 18 22:23:56 2023

@author: skunk69
"""

import json

chinese_name = u'初中生感知的学校气氛问卷'
english_name = 'Perceived School Climate Inventory for Middle School Students'
abbreviation = 'PSCI-M'
category = u'学习与教育量表'

outline = u"""学校气氛是学校整体心理社会环境的总和。大量研究表明，学生感知的学校气氛不仅对于学生的学业成绩，而且在更广泛的范围内对学生的情感、态度、社会行为等产生重要影响。
《初中生感知的学校气氛问卷》（Perceived School Climate Inventory for Middle School Students, PSCI-M）由葛明贵和余益兵（2006）编制。该问卷以Moos关于人类环境的三分法为理论框架，通过文献分析、开放问卷调查、项目分析、因素分析等过程编制而成。该问卷可以用于学校改革与学生发展的相关研究中，作为中学生对学校心理环境评价的测量工具。"""

instruction = u"""学校是同学们每条生活、学习的地方，你眼中的学校是什么样子的？请你根据自己的亲身观察和感受，考虑一下下面句子的描述和你现在学校情况的符合程度，并在“完全不符合”、“不太符合”、“比较符合”和“完全符合”中选择一个答案。请按顺序依次作答，注意不要漏题或多选。"""

with open('PSCI-M.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.',maxsplit=1)
    items[key] = value.strip()

reverse_items = [2,4,6,7,11,17,19,21,26,28,31,35]
scales = [u'师生关系',u'同学关系',u'学业压力',u'秩序与纪律',u'发展多样性']
scales_items = [
    [1,10,14,18,24,27,30,33,38],# 师生关系
    [3,8,15,20,29,31,34],# 同学关系
    [4,6,11,17,21,28,32,35],# 学业压力
    [2,7,12,19,22,25,36],# 秩序与纪律
    [5,9,13,16,23,26,37],# 发展多样性
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,39)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'完全不符合',u'不太符合',u'比较符合',u'完全符合']
score_rules = list(range(1,5))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《初中生感知的学校气氛问卷》属于一个自评量表。"""

reliability = u"""正式样本为初中生群体。该问卷的内部一致性Cronbach α系数为0.857，分半信度为0.857，师生关系、同学关系、学业压力、秩序与纪律、发展多样性5个维度的Cronbach α系数为0.87、0.82、0.66、0.82、0.80。"""
validity = u"""以总体学校满意度为外部关联效标，学校生活满意度与师生关系、同学关系、秩序与纪律、发展多样性四个维度的得分均显著正相关，而与学业压力维度呈显著负相关，相关系数处于0.29~0.57中等水平。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""各维度的释义：
（1）师生关系，反映学生感受的师生之间的尊重、平等、公平、信任、期望与亲密的心理关系。
（2）同学关系，反映同学之间和睦相处、相互支持、关心帮助、谦让、尊重、信任、亲密的心理关系。
（3）学业压力，反映学生在学校中感受的学习压力程度以及学习任务、时间安排等情况。
（4）秩序与纪律，反映了学生对学校生活的秩序与纪律有效性的感受。
（5）发展多样性，反映了学校对学生全面发展的关注度以及学生全面发展的情况。
首先将反向题目反向计分，然后将各维度题目相加得到各维度分，所有38个条目得分之和即为该量表的总分。"""

applications = u"""实际应用效果有待后续研究的证实。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)